\input{../preamble}

%----------------------------------------------------------------------------------------
%	TITLE PAGE
%----------------------------------------------------------------------------------------

\title[第1讲]{第2讲 ：OS Architecture \& Structure} % The short title appears at the bottom of every slide, the full title is only on the title page
\subtitle{第五节：Exokernel -- Xok+ExOS }
\author{陈渝} % Your name
\institute[清华大学] % Your institution as it will appear on the bottom of every slide, may be shorthand to save space
{
	清华大学计算机系 \\ % Your institution for the title page
	\medskip
	\textit{yuchen@tsinghua.edu.cn} % Your email address
}
\date{\today} % Date, can be changed to a custom date


\begin{document}

\begin{frame}
\titlepage % Print the title page as the first slide
\end{frame}

%\begin{frame}
%\frametitle{提纲} % Table of contents slide, comment this block out to remove it
%\tableofcontents % Throughout your presentation, if you choose to use \section{} and \subsection{} commands, these will automatically be printed on this slide as an overview of your presentation
%\end{frame}
%
%%----------------------------------------------------------------------------------------
%%	PRESENTATION SLIDES
%%----------------------------------------------------------------------------------------
%
%%------------------------------------------------
%\section{第一节：课程概述} % Sections can be created in order to organize your presentation into discrete blocks, all sections and subsections are automatically printed in the table of contents as an overview of the talk
%%------------------------------------------------


%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Problem}
	
	\centering
	\includegraphics[width=.9\textwidth]{exokernel-problem}
	
\end{frame}


%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Insight}
	
	
	
	\begin{columns}
		
		\begin{column}{.5\textwidth}
			
			\includegraphics[width=1.\textwidth]{exokernel-arch}
			
		\end{column}
		
		\begin{column}{.6\textwidth}
			
						\Large
			\begin{itemize}
				\item Applications Know Better Than OS
				\item Application demands vary widely

			\end{itemize}	
			%			\includegraphics[width=1.\textwidth]{msdos}		
		\end{column}
		
		
	\end{columns}
	
\end{frame}



%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Ideas}
	
	
	
	\begin{columns}
		
		\begin{column}{.5\textwidth}
			
			\includegraphics[width=1.\textwidth]{exokernel-example1}
			
		\end{column}
		
		\begin{column}{.5\textwidth}
			
%			\Large
			\begin{itemize}
				\item Give un-trusted applications as much control over physical resources as possible
				\item To force as few abstraction as possible on developers
				\item separate protection from management
				
			\end{itemize}	
			%			\includegraphics[width=1.\textwidth]{msdos}		
		\end{column}
		
		
	\end{columns}
	
\end{frame}



%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Ideas}
	
	
	
	\begin{columns}
		
		\begin{column}{.5\textwidth}
			
			\includegraphics[width=1.\textwidth]{exokernel-example2}
			
		\end{column}
		
		\begin{column}{.5\textwidth}
			
			%			\Large
			\begin{itemize}
				\item Give un-trusted applications as much control over physical resources as possible
				\item To force as few abstraction as possible on developers
				\item separate protection from management
				
			\end{itemize}	
			%			\includegraphics[width=1.\textwidth]{msdos}		
		\end{column}
		
		
	\end{columns}
	
\end{frame}
%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Solution}
	
	\centering
	\includegraphics[width=.9\textwidth]{exokernel-solution}
	
\end{frame}



%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Challenges}
	
	
	
	\begin{columns}
		
		\begin{column}{.5\textwidth}
			
			\includegraphics[width=1.\textwidth]{exokernel-solution}
			
		\end{column}
		
		\begin{column}{.5\textwidth}
			
						\Large
			\begin{itemize}
				\item Tracking ownership of resources
				\item Ensuring resource protection
				\item Revoking resource access
				
			\end{itemize}	
			%			\includegraphics[width=1.\textwidth]{msdos}		
		\end{column}
		
		
	\end{columns}
	
\end{frame}
%-------------------------------------------------


%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Techniques}
	
	
	
	\begin{columns}
		
		\begin{column}{.5\textwidth}
			
			\includegraphics[width=1.\textwidth]{exokernel-solution}
			
		\end{column}
		
		\begin{column}{.5\textwidth}
			
			\Large
			\begin{itemize}
				\item Secure binding
				\item Visible revocation
				\item Abort protocol
				
			\end{itemize}	
			%			\includegraphics[width=1.\textwidth]{msdos}		
		\end{column}
		
		
	\end{columns}
	
\end{frame}



%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Techniques -- secure binding}
	
	\Large
	It is a protection mechanism that decouples authorization from actual use of a resource
	
	\begin{columns}
		
		\begin{column}{.5\textwidth}
			
			\includegraphics[width=1.\textwidth]{exokernel-solution}
			
		\end{column}
		
		\begin{column}{.5\textwidth}
			
		\large
		\begin{itemize}
		\item Secure binding techniques
			\begin{itemize}
				\item Hardware mechanism
				\item Software caching
				\item Downloading application code
				
			\end{itemize}	
		\end{itemize}
			%			\includegraphics[width=1.\textwidth]{msdos}		
		\end{column}
		
		
	\end{columns}
	
\end{frame}




%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Techniques -- visible resource revocation}
	
   \Large
	A way to reclaim resources and break their(application \& resources) secure binding
	
	\begin{columns}
		
		\begin{column}{.5\textwidth}
			
			\includegraphics[width=1.\textwidth]{exokernel-solution}
			
		\end{column}
		
		\begin{column}{.5\textwidth}
			
			\large
			\begin{itemize}
				\item An exokernel uses visible revocation for most resources
				\begin{itemize}
					\item traditional OS have performed revocation invisibly.

					
				\end{itemize}
			\item dialogue between an exokernel and a library OS
			\item library OS should organize resource lists
			\end{itemize}
			%			\includegraphics[width=1.\textwidth]{msdos}		
		\end{column}
		
		
	\end{columns}
	
\end{frame}


%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Techniques -- the abort protocol}
	
	\Large
	If a library OS fails to respond quickly, the secure bindings need to be broken “by force”
	
	\begin{columns}
		
		\begin{column}{.5\textwidth}
			
			\includegraphics[width=1.\textwidth]{exokernel-solution}
			
		\end{column}
		
		\begin{column}{.5\textwidth}
			
			\large
			\begin{itemize}
				\item The abort protocol
				\begin{itemize}
					\item An exokernel simply breaks all secure bindings to the resource and informs the library operating system
					
					
				\end{itemize}

			\end{itemize}
			%			\includegraphics[width=1.\textwidth]{msdos}		
		\end{column}
		
		
	\end{columns}
	
\end{frame}



%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Techniques -- library OS}
	
	\Large
	Manage OS abstractions 	at application level
	
	\begin{columns}
		
		\begin{column}{.5\textwidth}
			
			\includegraphics[width=1.\textwidth]{exokernel-solution}
			
		\end{column}
		
		\begin{column}{.5\textwidth}
			
			\large
			\begin{itemize}
				\item IPC Abstractions
			
				\item Application-level Virtual Memory
					
				\item Remote Communication
				
			\end{itemize}
			%			\includegraphics[width=1.\textwidth]{msdos}		
		\end{column}
		
		
	\end{columns}
	
\end{frame}



%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Implementation}
	

	
	\begin{columns}
		
		\begin{column}{.5\textwidth}
			
			\includegraphics[width=1.\textwidth]{exokernel-solution}
			
		\end{column}
		
		\begin{column}{.5\textwidth}
			
			\large
			\begin{itemize}
				\item Prototype ( Xok / ExOS )
				\begin{itemize}
					\item Exokernel: Xok on x86, Aegis runs on DEC
					\item Library OS: ExOS, fundamental OS abstractions at application level
					
				\end{itemize}
				
			\end{itemize}
			%			\includegraphics[width=1.\textwidth]{msdos}		
		\end{column}
		
		
	\end{columns}
	
\end{frame}



%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Performance}
	
	\centering
	\includegraphics[width=.8\textwidth]{aegis-perf1}
	
\end{frame}



%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Performance}
	
	\centering
	\includegraphics[width=.8\textwidth]{aegis-perf2}
	
\end{frame}


%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Performance}
	
	\centering
	\includegraphics[width=.8\textwidth]{aegis-perf3}
	
\end{frame}


%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Performance}
	
	\centering
	\includegraphics[width=.8\textwidth]{aegis-perf4}
	
\end{frame}


%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Performance}
	
	\centering
	\includegraphics[width=.8\textwidth]{exos-perf1}
	
\end{frame}



%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Performance}
	
	\centering
	\includegraphics[width=.8\textwidth]{exos-perf2}
	
\end{frame}


%-------------------------------------------------
\begin{frame}[plain]
	\frametitle{Performance}
	
	\centering
	\includegraphics[width=.8\textwidth]{exos-perf3}
	
\end{frame}


%-------------------------------------------------


\end{document}